
皆さんこんにちは。SB C&Sの湯村です。
前回の記事では、Azure Local上の仮想マシンに対する「GPUの個別デバイス割り当て:DDA」をご紹介しました。本記事では、もうひとつのGPU割り当て方法「GPUパーティション分割:GPU-P」の設定手順をご紹介します。
※今回の検証には、AX-760(Dell AX System for Azure Local)を利用しています。そのため、Azure LocalにおけるGPU-P手順については、Dell Technologies・Microsoft・NVIDIAが提供しているマニュアルを総合的に参考にしています。
目次
1.GPUパーティション分割(GPU-P)とは?
2.使用した環境
3.GPUホストドライバーのインストール
4.Windows Admin CenterにGPU拡張機能のインストール
5.GPUパーティション数の構成
6.GPUがアタッチされた仮想マシンの作成
7.GPUゲストドライバーのインストール
8.ライセンスサーバーの作成
9.クライアント構成トークンの設定
1. GPU パーティション分割(GPU-P)とは?
GPUパーティション分割(GPU Partitioning:GPU-P)は、個別デバイス割り当て(DDA)とは異なり、「1枚の物理GPUを複数のパーティションに分割し、それぞれを仮想マシンへ割り当てる方式」です。
1枚のGPUを1台の仮想マシンが占有するDDAに対して、GPU-Pでは1枚のGPUリソースを複数の仮想マシンで共有できます。そのため、GPUリソースを複数の仮想マシンで効率よく活用できることが大きなメリットです。
たとえば、48GBのGPUメモリを搭載したGPUを4つのパーティションに分割し、以下のように4台の仮想マシンへ割り当てることができます。
※GPU分割の詳しい仕組みについては、こちらの記事をご覧ください。
- VM-A:12GB
- VM-B:12GB
- VM-C:12GB
- VM-D:12GB
Windows Serverでは、Windows Server 2025からGPU-Pが利用できるようになりました。一方、物理GPUを複数の仮想マシンで共有する「仮想GPU」の仕組み自体は以前から存在しており、VMware vSphereやHorizon(現Omnissa Horizon)などの仮想化・VDI環境でも広く利用されてきました。
特にVDIでは、3D CADや3Dアプリケーションなど、高いグラフィックス性能を必要とする業務でGPUを活用するケースがあります。こうした用途では、限られたGPUリソースを複数の仮想デスクトップで効率よく利用するため、仮想GPUが活用されてきました。
そして、Windows ServerではWindows Server 2025から利用可能となったGPU-Pですが、実はAzure Localでは、それよりも前から利用できた機能です。まだ「Azure Stack HCI」と呼ばれていた頃から、GPU-PによるGPUの仮想マシンへの割り当てがサポートされていました。
「それなら、なぜ今あらためてGPU-Pを検証するのか?」と思われるかもしれません。
今回検証を行った理由は、Azure Localの実機、特にメーカーが提供する認定ハードウェアを使ったGPU-Pの検証情報がまだ少ないと感じたためです。
MicrosoftやNVIDIAからGPU-Pに関するドキュメントは豊富に提供されていますが、Dell TechnologiesのAzure Localソリューションなど、実際のハードウェアを使用して「どのように設定するのか」「実際にどのように動作するのか」まで紹介した情報はそれほど多くありません。
そこで今回は、SB C&Sの検証環境で稼働しているDell AX System for Azure LocalとNVIDIA GPUを使用して、Azure LocalにおけるGPU-Pの設定から仮想マシンへの割り当て、実際の動作までを検証した結果をご紹介します。
2. 使用した環境
今回使用した環境は以下の通りです。
※GPU検証で使用したコンポーネントのみ列挙しています。
- Azure Localノード:Dell AX-760 × 3
- Azure Local OS:Azure Local Golden Images(Dell 2512)
※Azure Local OSは高頻度で更新される傾向があります。本環境の都合上、古いバージョンを利用していますが、できるだけ最新のバージョンを利用するようにしましょう。 - ゲストOS:Windows Server 2022 Datacenter Azure Edition
※Azure Editionは、Azure Marketplaceで利用可能なエディションのひとつです。 - GPU:NVIDIA L4 × 6
※1ノードあたり2枚搭載 - GPUゲストドライバー:詳細は前回の記事をご覧ください。
- GPUホストドライバー:詳細は以降の手順で紹介します。
3. GPU ホストドライバーのインストール
DDAを利用した際はGPUホストドライバーは不要でしたが、GPU-Pを機能させるにはGPUホストドライバーが必要になります。このドライバーはNVIDIA Licensing Portalからダウンロードでき、ダウンロードしたzipファイルの中にGPUゲストドライバーとGPUホストドライバーが含まれています。
※ダウンロード方法については、前回記事の「6.1. GPUゲストドライバーのダウンロード」をご覧ください。
1. Windows Admin Centerにログインし、以下を実行します。
- サーバーマネージャーから各ホストの管理画面を開きます。
- 左ツリーで、[ファイル&ファイル共有] をクリックします。
- ファイルを格納するフォルダパスを指定します。
※画像では管理者ユーザーのフォルダ配下に格納していますが、任意の場所で問題ありません。 - [・・・] をクリックします。
- [アップロード] をクリックします。

2. [ファイルの選択] をクリックします。
3. ダウンロードしたzipファイルを展開し、[Host_Drivers\Azure_Local\Display.Driver] 配下にあるすべてのファイルを選択し、[開く] をクリックします。
4. [送信] をクリックします。
5. ファイルが格納されたことを確認します。
6. ホストOSのPowerShellで以下のコマンドを実行し、GPUホストドライバーをインストールします。
pnputil /add-driver .\nvgridswhci.inf /install /force
7. 以下のコマンドを実行し、PCIeデバイス名がGPU型番名になっていることを確認します。
※インストールする前は「3D Video Controller」という名前になっています。
Get-PnpDevice -Class Display | fl FriendlyName, InstanceId
8. クラスターに属するすべてのホストに対して、GPUホストドライバーのインストールを行ってください。
4. Windows Admin Center に GPU 拡張機能のインストール
Azure LocalにGPU-Pを設定する方法は、PowerShellとWindows Admin Centerの2つが用意されています。今回はGUIで簡単に設定できるWindows Admin Centerを利用します。まずは、GPU-Pを設定できるようにするために「GPU拡張機能」をWindows Admin Centerにインストールします。
1. Windows Admin Centerにログインし、右上にある「歯車マーク」をクリックします。
2. 左ツリーから [拡張] をクリックします。
3. 利用可能な拡張機能一覧にある [GPUs] を選択し、[インストール] をクリックします。
4. インストールが完了したら、「インストール済の拡張機能」一覧に「GPUs」が含まれていることを確認します。
5. 拡張機能が正常に動作しているか見てみましょう。「すべての接続」一覧からクラスター名をクリックします。
6. 左ツリーの [GPU] をクリックすると、各ホストに搭載されているGPU情報が表示されます。GPU名が「型番名」で表示され、割り当て状態が「パーティション分割」となっていれば問題ありません。
5. GPU パーティション数の構成
Windows Admin CenterのGPU拡張機能を利用して、GPUのパーティション数(ひとつの物理GPUをいくつに分割するか)を設定します。
1. GPU拡張機能を開き、[GPU パーティション] タブをクリックします。
2. [パーティション数の構成] をクリックします。
★ポイント★
パーティション数の初期設定はGPUが持っているメモリ容量と同じ値です。今回の環境ではNVIDIA L4(メモリサイズ:24GB)を利用しているため、パーティション数が「24」となっています。
3. クラスター内のすべてのGPUを選択します。
※実際に使用するGPUが1枚であっても、すべてのGPUのパーティション数を同じにしておくことが推奨とされています。
4. パーティション数を選択します。今回は [4] を選択しています。
※分割できるパーティション数は、GPUメモリサイズの約数が対象となります。今回はNVIDIA L4(24GBメモリ)を利用しているため、24の約数 [24,12,8,6,4,3,2,1] の中からパーティション数を選択できます。
5. [パーティション数の構成] をクリックします。
6. 各GPUのパーティション数が設定した数になっていることを確認します。
★ポイント★
これでパーティション数の設定は完了し、いよいよ仮想マシンへのGPU割り当て作業を行います。このままWindows Admin Centerから「パーティションを割り当てる」をクリックして進めることはできますが、既に仮想マシンが作成されていることが前提となります。Azure Localの場合、Azure Portalから仮想マシンを作成する際に、その場でGPUをアタッチできるので、次の章ではAzure Portalから実行する手順をご紹介します。
6. GPU がアタッチされた仮想マシンの作成
GPUをアタッチした仮想マシンを作成するには、Azure Localにおける仮想マシン作成手順に従います。以下は、GPUに依存する箇所のみ抜粋していますので、詳しい手順を知りたい方は第5回の記事をご覧ください。
1. 仮想マシン作成ウィザードで以下のGPUパラメーターを指定し、仮想マシンを作成します。
- [GPUのアタッチ] にチェックを入れます。
- 「GPUのセットアップ」オプションが表示されたら、[GPU Partition] を選択します。
2. 仮想マシンのデプロイが完了したら、[リソースに移動] をクリックします。
3. 仮想マシンの概要ページが表示され、GPU-Pによって分割された分のGPUメモリが適用されていることを確認します。
7. GPU ゲストドライバーのインストール
作成した仮想マシンに対してGPUゲストドライバーをインストールします。インストール方法は前回記事の「6.2. GPUゲストドライバーのインストール」を参考にしてください。
ゲストドライバーをインストールした後にNVIDIA Control Panelを開くと、「NVIDIA L4-6Q」のように表示されます。これは、「"L4" を "Quadroライセンス" で "6GBメモリ" 割り当てた」という意味です。
※vGPUプロファイルの命名規則やライセンス種別の詳細については、こちらの記事で説明していますのでご覧ください。
今回の環境ではL4(24GBメモリ)を4つのパーティションに分割していますので、設定どおり6GBのメモリが仮想マシンに割り当たっていることがわかります。
8. ライセンスサーバーの作成
ここまでの手順を実行することで、仮想マシンに割り当てたGPUを利用できるようになります。しかし、一定時間経過するとGPUの機能が次第に制限されていく仕様となっています。そこで、GPU-Pの場合はvGPUライセンスを用意し、仮想マシンに適用する必要があります。
ここからは、NVIDIA Licensing Portalにログインし、ライセンスサーバーを作成する手順をご紹介します。ライセンスの種類やライセンスシステムに関する説明は割愛しますが、詳しく知りたい方は以下の記事をご覧ください。
【参考】NVIDIA vGPU ご紹介 第5回 vGPUライセンスの仕組み
1. NVIDIA Application Hubにログインします。
2. [NVIDIA Licensing Portal] をクリックします。
3. [License Servers] > [Create Server] の順にクリックします。
4.「Identification」ステップでは以下の手順を実行します。
- 「Name」に任意のライセンスサーバー名を入力します。
- [Next Step] をクリックします。
5.「Features」ステップでは以下の手順を実行します。
- 使用するライセンスにチェックを入れ、数量を入力します。
- [Next Step] をクリックします。
6.「Environment」ステップでは以下の手順を実行します。
- [Cloud(CLS)] をクリックします。
- [Express installation] を無効にします。
7. 以下の手順を実行します。
- 「Name」に任意のサービスインスタンス名を入力します。
- 「Description」に任意の説明文を入力します。
- [Create Service Instance] をクリックします。
8. [Next Step] をクリックします。
9.「Configuration」ステップでは以下の手順を実行します。
- 「Leasing mode」で [Standard Networked Licensing] を選択します。
- [Create Server] をクリックします。
10. ライセンスサーバーが作成されたら、以下のような詳細画面に遷移します。画面下部の [Server Features] タブをクリックすると、実際に適用するライセンスの使用状況を確認できます。今はまだ適用していないため、「Assigned / Allocated」の値が0になっていることが分かります。
9. クライアント構成トークンの設定
最後に、作成したライセンスサーバーから「クライアント構成トークン」をダウンロードし、ゲストOS上に配置します。これを実施することで、仮想マシンがライセンスサーバーからvGPUライセンスを取得できるようになります。
1. ライセンスサーバーの詳細画面で、以下の手順を実行します。
- [Actions] ボタンをクリックします。
- [Generate client config token] をクリックします。
2. ライセンスサーバーにチェックを入れ、[Download Client Configuration Token] をクリックします。
3. ゲストOS上の以下のフォルダにダウンロードしたトークンファイルを配置します。
トークンファイルの配置フォルダ:%SystemDrive%\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken
※このフォルダは、GPUゲストドライバーをインストールした際に自動的に作成されます。
4. ゲストOS上でWindowsサービスを開き、[NVIDIA Display Container LS] サービスを再起動します。
5. 再びライセンスサーバーの詳細画面に戻ると、「Assigned / Allocated」欄が割り当てた分だけ使われていることがわかります。
※今回はひとつのライセンスのみ使用していますので、「1/1」となっています。
以上で、Azure Local環境の仮想マシンがvGPUを使用できるようになりました。GPU-Pによるパーティション分割から仮想マシンへの割り当てにいたるまで少々手順が多いため、本記事を参考にしていただき皆様の環境で検証いただければと思います。
次回は、「Azure Local とは? 運用編 第8回 Azure Monitor による監視」と題し、クラスターリソースの監視についてご紹介します。是非ご覧ください。
SB C&Sが提供するAzure Local の技術情報はこちら!
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第1技術統括部 第1技術部 2課
湯村 成一 - Seiichi Yumura -
Dell Technologies・HPE製品担当のプリセールスエンジニア。
主に仮想化・HCIを専門領域としている。
